package com.SmartCare.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.SmartCare.common.Result;
import com.SmartCare.pojo.Attendance;

public interface AttendanceService extends IService<Attendance> {

    /**
     * 签到
     */
    Result checkIn(Long visitorId, Long elderId);

    /**
     * 签退
     */
    Result checkOut(Long id);

    /**
     * 个人访问信息查询
     */
    Result getOneInfo(Long visitorId);

    /**
     * 排行榜
     */
    Result getTop(Integer flag);

    /**
     * 获取该养老院的排行榜数据
     * @param careHomeName 养老院名
     * @return 返回获取的数据
     */
    Result getAttendanceData(String careHomeName);

    /**
     * 签到信息查询
     */
    Result getSignInfo(Long visitorId, Long elderId);


    /**
     * 分页查找某养老院的线下到访记录
     * @param careHomeName 养老院名
     * @param pageNum 当前页数
     * @param pageSize 每页数据量
     * @param keyword 搜索关键词
     * @param type 搜索字段名
     * @return 返回查询到的分页数据
     */
    Result search(String careHomeName, Integer pageNum, Integer pageSize, String keyword, String type);

    /**
     * 获取本周排行榜记录
     * @param careHomeName 养老院名
     * @return 返回获取到的记录
     */
    Result getWeekAttendance(String careHomeName);

    /**
     * 获取用户访问总时长排行
     * @param careHomeName 养老院名
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 返回排行数据
     */
    Result topByUser(String careHomeName, String startTime, String endTime);
}
